package com.yaoxun.console.controller;

import com.yaoxun.console.code.BaseResponseCode;
import com.yaoxun.console.code.ResponseCode;
import com.yaoxun.console.xo.resp.ApiResp;

/**
 * Controller 公共方法
 * @author Loren
 *
 */
public interface BaseController {

	 /**
     * 成功
     * @author Loren
     * @Datetime 2021年7月10日 下午6:42:03
     * @param <T>
     * @param data
     * @return
     */
    default <T> ApiResp<T> ofRoSuccess(T data) {
        return ofRo(BaseResponseCode.SUCCESS, data);
    }
    
    /**
     * 自定义响应
     * @author Loren
     * @Datetime 2021年7月10日 下午6:42:13
     * @param <T>
     * @param responseCode
     * @param data
     * @return
     */
    default <T> ApiResp<T> ofRo(ResponseCode responseCode, T data) {
        ApiResp<T> apiResp = new ApiResp<>();
        apiResp.setCode(responseCode.code()).setMsg(responseCode.msg());
        apiResp.setData(data);
        return apiResp;
    }
    
    /**
     * Error 输出
     * @author Loren
     * @Datetime 2021年7月10日 下午6:42:56
     * @param <T>
     * @return
     */
    default <T> ApiResp<T> ofRoError() {
        return ofRo(BaseResponseCode.ERROR, null);
    }
    
}
